package laoqiaoDemo;

import java.util.PriorityQueue;
import java.util.Scanner;

/**
 * @Author liangzai
 * @Description:
 */
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        PriorityQueue<String> queue = new PriorityQueue<>();
        int n = scanner.nextInt();
        //String[] str = new String[n];
        for (int i = 0; i < n; i++) {
            //str[i] = scanner.next();
            String str = scanner.next();
            queue.add(str);
        }
        StringBuilder stringBuilder = new StringBuilder();
        for(String string : queue){
            stringBuilder.append(string);
        }
        System.out.println(stringBuilder);
    }

    public static void main7(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = scanner.nextInt();
        }
        int count = 1;
        int max = arr[0];
        for (int i = 1; i < n; i++) {
            if(arr[i]>max){
                count++;
                max = arr[i];
            }
        }
        System.out.println(count);
    }

//    public static void main(String[] args) {
//        // 测试数据
//        String s = "1101011";
//        // 开始测试
//        System.out.println(getMaxStr(s));
//    }
//
//    /**
//     * 获取最长交替子串
//     *
//     * @param s 测试数据
//     * @return 最长交替子串
//     */
//    public static String getMaxStr(String s) {
//        // 最大交替子串的长度
//        int max = 0;
//        // 最长交替子串
//        String maxStr = "";
//        // 交替子串长度
//        int num = 1;
//        // 第一个字符
//        char ch = s.charAt(0);
//        // 遍历字符串中的所有字符
//        for (int i = 1; i < s.length(); i++) {
//            // 判断当前字符和前一个字符是否相等
//            if (s.charAt(i) == ch) {
//                // 获取最大交替子串长度
//                max = Math.max(max, num);
//                // 获取最长交替子串
//                if (max == num) {
//                    maxStr = s.substring(i - num, i);
//                }
//                // 初始化交替子串长度
//                num = 1;
//            } else {
//                num++;
//            }
//            // 获取当前的字符，下一次if判断时候ch就变成了前一个字符
//            ch = s.charAt(i);
//        }
//        // 防止出现 最大交替子串在最后 或者 字符串中只有一个字符 的情况
//        max = Math.max(max, num);
//        // 获取最长交替子串
//        if (max == num) {
//            maxStr = s.substring(s.length() - num);
//        }
//        // 返回最长交替子串
//        return maxStr;
//    }


    public static void main6(String[] args) {
        int val = 26;
        int sum = 0;
        for (int i = 0; i < 19; i++) {
            val = val*2-4;
            System.out.println(val);
        }
        System.out.println();
        System.out.println(val);
    }

//    private static String build(){
//        String ret = new String();
//        StringBuilder stringBuilder = new StringBuilder();
//        for (int i = 0; i < 24; i++) {
//            stringBuilder.append('')
//        }
//        return (String)stringBuilder;
//    }

    public static void main5(String[] args) {
        int count = 1;
        for (long i = 2; i < Long.MAX_VALUE; i++) {
            int j = 2;
            for (j = 2; j <= 2024; j++) {
                if(2024%j==0 && i%j==0){
                    break;
                }
            }
            if(j==2025){
                count++;
                //System.out.println(i);
            }
            if(count==2024){
                System.out.println(i);
                break;
            }
        }
    }

    public static void main4(String[] args) {
        for (int i = 2024; i >= 2; i--) {
            if(cheak(i)){
                System.out.println(i);
                break;
            }
        }
    }

    public static void main3(String[] args) {
        int sum = 0;
        for (int i = 2024; i >= 2; i--) {
            if(cheak(i)){
                if(2024%i==0){
                    sum += i;
                    System.out.println(i);
                }
            }
        }
        System.out.println(sum);
    }

    public static void main2(String[] args) {
        for (int i = 2024; i < Integer.MAX_VALUE; i++) {
            if(i%2024==0 && i%1024==0){
                System.out.println(i);
                break;
            }
        }
    }

    public static void main1(String[] args) {
        for (int i = 2024; i > 0; i--) {
            if(cheak(i)){
                if(2024%i==0){
                    System.out.println(i);
                    break;
                }
            }
        }
    }

    private static boolean cheak(int i){
        for (int j = 2; j < i; j++) {
            if(i%j==0){
                return false;
            }
        }
        return true;
    }
}
